home *** CD-ROM | disk | FTP | other *** search
/ Aminet 52 / Aminet 52 (2002)(GTI - Schatztruhe)[!][Dec 2002].iso / Aminet / dev / gg / ncurses-5.3.lha / ncurses-5.3 / TO-DO < prev   
Text File  |  2002-10-24  |  8KB  |  192 lines

  1. -- $Id: TO-DO,v 1.41 2002/08/31 21:32:43 tom Exp $
  2.  
  3. SHORT-TERM TO-DO ITEMS:
  4.  
  5. Known Problems:
  6.  
  7. * GNAT does not put libraries in the correct order, so a build only links
  8.   properly if you use shared libraries since -lncurses is first.
  9.  
  10. * The screen optimization has been tested only in an ad hoc manner.  We should
  11.   develop a good set of regression tests to cover lib_doupdate.c and
  12.   lib_mvcur.c.
  13.  
  14. * Magic cookie support does not work, since the logic does not take into account
  15.   refresh.  Also, the initial optimize does not adjust the current location
  16.   when a cookie is emitted.
  17.  
  18. * Scrolling optimization has holes: for example, it forces repaints of the
  19.   screen between calls to refresh().
  20.  
  21. * SVr4 uses slightly different rules for determining when softkeys are shown.
  22.   For example, they are initially displayed (before the ncurses 'e' test
  23.   activates them), and a touchwin can apparently also force them to be
  24.   displayed.
  25.  
  26. + The code departs from perfect 8-bit cleanness in one respect; you cannot
  27.   specify a character \200 as part of a capability string, because the terminfo
  28.   library interprets \200 as a request to embed NUL (\000) at that point.  This
  29.   is a legacy terminfo property we can't mess with.
  30.  
  31. * The window classes defined in the c++ subdirectory need documentation.
  32.   Some C++ programmer could earn a lot of good karma by doing this...
  33.  
  34. * The resizeterm() function does not handle ripped-off lines such as that
  35.   done for the slk_XXX functions.
  36.  
  37. Portability (or lack thereof):
  38.  
  39. * Users of older System V UNIXes (but not Solaris, and probably not SVr4)
  40.   may trip over a known problem with the signal-handling code which causes
  41.   abrupt termination of ncurses applications following resume from a ^Z
  42.   suspend (this problem was first seen running lynx).  You will not see 
  43.   this problem if you are running Linux or one of the 4.4BSD derivatives
  44.   like FreeBSD, NetBSD, or BSDI.  For details, see the analysis in the
  45.   header comment of ncurses/lib_tstp.c.
  46.  
  47. * In theory, vwprintw and vwscanf are supposed to use the older varargs.h
  48.   interface for handling variadic argument lists.  Linux doesn't have
  49.   varargs.h, it has the newer X/Open-standard stdargs.h equivalent. So
  50.   these functions use stdargs instead.  This is unlikely to be a problem 
  51.   unless you're building ncurses on a System V old enough to only have
  52.   varargs.h.  (Solaris 2.5.1 uses the stdarg.h binding as well).
  53.  
  54. * If you're using a BSD earlier than 4.4BSD, or a Linux old enough not to
  55.   have a native vsscanf(3) in its library, vwscanw() will not work.  You lose.
  56.   (It should work on any System V, however).  If you want to fix this, add
  57.   an implementation to ncurses/vsscanf.c.
  58.  
  59. * The demo build for the c++ library craps out with many link errors under gcc
  60.   2.6.3.  We're told the C++ support in 2.6.3 is broken and that the right
  61.   fix is to upgrade to 2.7.0.  This demo is also known to not build with
  62.   the Sun SPARCworks 4.1 C++ compiler, due to a problem resolving templates.
  63.  
  64. * Under Ultrix, configure craps out (Ultrix sh is lame).  Run it under ksh.
  65.  
  66. * We've not tested the configure script with cross-compilers.  The autoconf
  67.   tests are supposed to be able to support this (please report bugs).  You will
  68.   have to configure and build in two steps.  The first step must create the
  69.   automatically-generated sources (e.g., comp_captab.c) on your host machine. 
  70.   Then, run "make mostlyclean", remove config.* from the top-level directory
  71.   and configure for the cross-compiler.
  72.  
  73. + terminfo.5 does not format with the SunOS (and most other platform's) tbl
  74.   utility because it relies on a diversion for each table entry.  Get the groff
  75.   package.
  76.  
  77. Untested features:
  78.  
  79. * The code for the HP color model using set_color_pair is untested.
  80.  
  81. * The code for handling soft labels on a terminal type with built-in support
  82.   for them (num_labels > 0, label_height, label_width, label_format, label_off,
  83.   label_on, plab_norm, lab_f*) has not been tested.  The label_format and
  84.   lab_f* capabilities aren't presently used.
  85.  
  86. * The wide-character input functions need testing.
  87.  
  88. LONGER-TERM TO-DO ITEMS:
  89.  
  90. 1. Extended COSE conformance
  91.  
  92. There is an XPG4 standard recently released which describes a superset
  93. of the SVr4 API.  The library is BASE conformant with this standard.
  94. We would like to make ncurses fully conformant at the EXTENDED level
  95. supporting internationalization.
  96.  
  97. Current status:
  98.     pecho_wchar() not implemented.
  99.     slk_wset not implemented.
  100.  
  101. 2. DOS port
  102.  
  103. Only 16 of the 55 files in the library depend on the terminfo format.
  104. It should be possible to further kernelize the package, then rewrite 
  105. a small number of core files to produce a functionally-compatible
  106. port that would do updates to a memory-mapped screen area.  The first
  107. result of this would be a DOS port.
  108.  
  109. 3. X port
  110.  
  111. It would be nice if ncurses could recognize when it was running under X and
  112. maintain its own window.  With this feature, all ncurses programs would
  113. automatically become X programs.  The challenge is to handle resize events
  114. properly.
  115.  
  116. 4. Unused capabilities
  117.  
  118. The currently unused capabilities fall naturally into several groups:
  119.  
  120. A. Status-line capabilities:
  121.  
  122.     Booleans: has_status_line, status_line_esc_ok.
  123.     Numerics: width_status_line.
  124.     Strings: dis_status_line, from_status_line, to_status_line.
  125.  
  126. System V Release 1 curses made no use of these at all.  SVr4's use, if
  127. any, is unknown.  From the AT&T termcap file it looks like curses, in general,
  128. shouldn't use them; terminal variants with status lines have their line count
  129. decremented by 1, suggesting that curses is supposed to leave the status line
  130. alone.
  131.  
  132. B. Printer capabilities:
  133.  
  134.     Boolean: col_addr_glitch, cr_cancels_micro_mode, has_print_wheel,
  135.         row_addr_glitch, semi_auto_right_margin, cpi_changes_res,
  136.         lpi_changes_res.
  137.     Numeric: buffer_capacity, dot_horz_spacing, dot_vert_spacing,
  138.         max_micro_address, max_micro_jump, micro_col_size,
  139.         micro_line_size, number_of_pins, output_res_char,
  140.         output_res_line, output_res_horz_inch, print_rate,
  141.         wide_char_size, bit_image_entwining, bit_image_type.
  142.     String: down_half_line, form_feed, up_half_line, set_left_margin,
  143.         set_right_margin, clear_margins, change_char_pitch
  144.         ... set_page_length (all the SVr4 printer caps),
  145.  
  146. Curses doesn't use these.
  147.  
  148. C. Printer-control capabilities:
  149.  
  150.     Boolean: prtr_silent.
  151.     Strings: print_screen, prtr_on, prtr_off, prtr_non.
  152.  
  153. Curses doesn't use these.
  154.  
  155. D. Dialer strings:
  156.  
  157.     Strings: hangup, dial_phone, quick_dial, tone, pulse, flash_hook,
  158.         fixed_pause, wait_tone.
  159.  
  160. Curses doesn't use these.
  161.  
  162. E. Window and virtual-terminal capabilities:
  163.  
  164.     Numerics: maximum_windows, virtual_terminal.
  165.     Strings: req_for_input, create_window, goto_window, set_window.
  166.  
  167. These seem to be fossils from some AT&T experiments on character-based
  168. window systems that never escaped the lab.  The virtual_terminal cap had
  169. something to do with building terminal emulations into tty line disciplines.
  170.  
  171. F. Unused VDT capabilities:
  172.  
  173.     Booleans: erase_overstrike, has_meta_key, insert_null_glitch,
  174.         move_insert, dest_tabs_magic_smso, transparent_underline,
  175.         needs_xon_xoff, hard_cursor.
  176.     Numerics: lines_of_memory, buttons.
  177.     Strings: pkey_key, pkey_local, pkey_xmit, underline_char, 
  178.         enter_xon_mode,    exit_xon_mode, xon_character, xoff_character, 
  179.         display_clock, remove_clock, user[0-5], display_pc_char,
  180.         enter_scancode_mode, exit_scancode_mode, pc_term_options, 
  181.         scancode_escape, alt_scancode_esc.
  182.  
  183. These are the potentially important ones for ncurses.  Notes:
  184.  
  185.     i) ncurses doesn't need move_insert; it never uses cup/hpa/vpa while
  186.         insert_mode is on.
  187.  
  188.     ii) We probably don't care about dest_tabs_magic_smso; only
  189.         Telerays used it and they're all long obsolete.
  190.  
  191.  
  192.